package com.product.system.domain;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Email;
import javax.validation.constraints.Pattern;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ExcelIgnoreUnannotated
public class SysDept {
    /** 部门ID */
    private Long deptId;

    /** 父部门ID */
    private Long parentId;

    /** 祖级列表 */
    private String ancestors;

    /** 部门名称 */
    @ExcelProperty("部门名称")
    @JsonProperty("name")
    private String deptName;

    /** 显示顺序 */
    private Integer orderNum;

    /** 负责人 */
    @ExcelProperty("负责人")
    private String leader;

    /** 联系电话 */
    @ExcelProperty("电话")
    @Pattern(regexp = "^(?:(?:\\+|00)86)?1\\d{10}$",message = "手机号格式不正确")
    private String phone;

    /** 邮箱 */
    @ExcelProperty("邮箱")
    @Email(message = "邮箱格式不正确")
    private String email;

    /** 部门状态:0正常,1停用 */
    @ExcelProperty("状态")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 创建者 */
    @ExcelProperty("创建者")
    private String createBy;

    /** 创建时间 */
    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 父部门名称 */
    private String parentName;


}
